/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package negocio;

import javax.ejb.Remote;

/**
 *
 * @author Ing. Monica Merlo, Ing. Agustin  Fernandez
 */
@Remote
public interface GestorGeoRemote {

     /***
     * Retorna una lista de las instancias de Localidad cuyo nombre coincida con el
     * valor del parametro nombreLoc.
     * @param nombreLoc
     * @return lista con todas aquellas localidades con nombre como nombreLoc, null en caso contrario
     * interfaz remota
     */
    public java.util.List encontrarLocalidadesPorNombreConsultaGeoRemote(java.lang.String nombreLoc);

     /***
     * Retorna una lista con todas aquellas localidades cuyo nombre y departamento,
     * coincidan con los parametros nombreLoc e idDpto, en caso contrario retornara una
     * lista vacia.
     * @param nombreLoc
     * @param idDpto
     * @return lista con todas las localidades con nombre como nombreLoc e ID departamento igual a idDpto ordenadas por nombre
     * y null en caso contrario
     * interfaz remota
     */
    public java.util.List encontrarLocalidadesPorNombreYDptoConsultaGeoRemote(java.lang.String nombreLoc, int idDpto);

     /***
     * Retorna una lista con todos los objetos de tipo Pais cuyos nombres coincidan
     * con el parametro nombrePais, en caso contrario devolvera una lista vacia.
     * @param nombrePais
     * @return lista con todos los países con nombre como nombrePais ordenados por nombre y null en caso contrario
     * interfaz remota
     */
    public java.util.List encontrarPaisesPorNombreConsultaGeoRemote(java.lang.String nombrePais);

     /***
     * Retorna una lista con todos los objetos de tipo Provincia cuyos nombres coincidan con
     * el parametro nombreProvincia.
     * @param nombreProvincia
     * @return lista con todas las provincias con nombre como nombreProvincia ordenadas y null en caso contrario
     * interfaz remota
     */
    public java.util.List encontrarProvinciasPorNombreConsultaGeoRemote(java.lang.String nombreProvincia);

     /***
     * Retorna una lista con todos los objetos de tipo Provincia, cuyos nombres coincidan con
     * los parametros nombrePais e idPais, en caso contrario retornara una lista vacia.
     * @param nombreProvincia
     * @param idPais
     * @return lista con todas aquellas provincias con nombre como nombreProvincia y Pais ID igual a idPais
     * ordenadas por nombre y null en caso contrario
     * interfaz remota
     */
    public java.util.List encontrarProvinciasPorNombreYPaisConsultaGeoRemote(java.lang.String nombreProvincia, int idPais);

     /***
     * Retorna una lista con objetos de tipo Departamento cuyos nombres coincidan con
     * el parametro nombreDepartamento, en caso contrario retornara una lista vacia.
     * @param nombreDepartamento
     * @return lista de departamentos con nombre como nombreDepartamento ordenados por nombre y
     * null en caso contrario
     * interfaz remota
     */
    public java.util.List encontrarDepartamentosPorNombreConsultaGeoRemote(java.lang.String nombreDepartamento);

     /***
     * Retorna una lista con objetos de tipo Departamento cuyos nombres e id de Provincia, coincidan
     * con los parametros nombreDepartamento e idProv respectivamente, retorna Null en caso contrario.
     * @param nombreDepartamento
     * @param idProv
     * @return lista con departamentos con nombre como nombreDepartamento e ID provincia igual a idProv
     * ordenados por nombre
     * interfaz remota
     */
    public java.util.List encontrarDepartamentosPorNombreYProvinciaConsultaGeoRemote(java.lang.String nombreDepartamento, int idProv);

     /***
     * Retorna una lista con objetos de tipo TipoObra cuyos nombres coincidan con
     * el parametro nombreTipoObra, en caso contrario etorna Null.
     * @param nombreTipoObra
     * @return lista con todos los tipos de obra con nombre como nombreTipoObra ordenados por nombre
     * y null en caso contrario
     * interfaz remota
     */
    public java.util.List encontrarTiposObraConsultaGeoRemote(java.lang.String nombreTipoObra);

     /***
     * Retorna una lista con objetos de tipo SubtipoObra cuyos nombres
     * coincidan con el parametro nombreSubtipo, en caso contrario retorna Null.
     * @param nombreSubtipo
     * @return lista con los subtipos de obra con nombre como nombreSubtipo ordenados
     * por nombre y null en caso contrario
     * interfaz remota
     */
    public java.util.List encontrarSubtiposPorNombreConsultaGeoRemote(java.lang.String nombreSubtipo);

     /***
     * Retorna una lista con objetos de tipo SubtipoObra cuyos nombres e id
     * coincidan con los parametros nombreSubtipo e idTipoObra respectivamente,
     * en caso contrario retorna Null.
     * @param nombreSubtipo
     * @param idTipoObra
     * @return lista con los subtipos de obra con nombre como nombreSubtipo e ID de tipo de obra igual
     * a idTipoObra oredenados por nombre y null en caso contrario
     * interfaz remota
     */
    public java.util.List encontrarSubtiposPorNombreYTipoConsultaGeoRemote(java.lang.String nombreSubtipo, int idTipoObra);

     /***
     * Retorna una lista con objetos de tipo Obra que coincidan con el criterio de búsqueda siguiente: Pais como pais,
     * Provincia como provincia, Departamento como dpto, Localidad como localidad, Tipo de Obra como tipoObra,
     * Subtipo de Obra como subtipoObra, ordenados por nombre y Null en caso contrario.
     * @param pais
     * @param provincia
     * @param dpto
     * @param localidad
     * @param tipoObra
     * @param subtipoObra
     * @return lista con aquellas obras que coincidan con el criterio de búsqueda siguiente: Pais como pais,
     * Provincia como provincia, Departamento como dpto, Localidad como localidad, Tipo de Obra como tipoObra,
     * Subtipo de Obra como subtipoObra, ordenadas por nombre y null en caso contrario
     * interfaz remota
     */
    public java.util.List filtrarObrasConsultaGeoRemote(java.lang.String pais, java.lang.String provincia, java.lang.String dpto, java.lang.String localidad, java.lang.String tipoObra, java.lang.String subtipoObra);

     /***
     * Retorna una lista con objetos de tipo Obra que coincidan
     * con el parametro idObra, en caso contrario retornara Null.
     * @param idObra
     * @return lista con obra con ID igual a idObra y null en caso contrario
     * interfaz remota
     */
    public java.util.List filtrarObrasPorIdRemote(int idObra);
    
}
